home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / a_man / cat1 / bootp.z / bootp
Encoding:
Text File  |  2002-10-03  |  15.1 KB  |  331 lines

  1.  
  2.  
  3.  
  4. bbbboooooooottttpppp((((1111MMMM))))                                                            bbbboooooooottttpppp((((1111MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      bootp - server for Internet Bootstrap Protocol
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ////uuuussssrrrr////eeeettttcccc////bbbboooooooottttpppp [ ----dddd ] [ ----ffff ]
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      _b_o_o_t_p is a server that supports the Internet Bootstrap Protocol (BOOTP).
  16.      This protocol is designed to allow a (possibly diskless) client machine
  17.      to determine its own Internet address, the address of a boot server, and
  18.      the name of an appropriate boot file to be loaded and executed.  BOOTP
  19.      does not provide the actual transfer of the boot file, which is typically
  20.      done with a simple file transfer protocol such as TFTP.  A detailed
  21.      protocol specification for BOOTP is contained in RFC 951, which is
  22.      available from the Network Information Center.
  23.  
  24.      The BOOTP protocol uses UDP/IP as its transport mechanism.  The BOOTP
  25.      server receives service requests at the UDP port indicated in the
  26.      ``bootp'' service description contained in the file /_e_t_c/_s_e_r_v_i_c_e_s (see
  27.      _s_e_r_v_i_c_e_s(4)).  The BOOTP server is started by _i_n_e_t_d(1M), as configured in
  28.      the _i_n_e_t_d._c_o_n_f file.
  29.  
  30.      The basic operation of the BOOTP protocol is a single packet exchange as
  31.      follows:
  32.  
  33.      1.  The booting client machine broadcasts a BOOTP request packet to the
  34.          BOOTP server UDP port, using a UDP broadcast or the equivalent
  35.          thereof.  The request packet includes the following information:
  36.  
  37.          requester's network hardware address
  38.          requester's Internet address (optional)
  39.          desired server's name (optional)
  40.          boot filename (optional)
  41.  
  42.      2.  All the BOOTP servers on the same network as the client machine
  43.          receive the client's request.  If the client has specified a
  44.          particular server, then only that server responds.
  45.  
  46.      3.  The server looks up the requester in its configuration file by
  47.          Internet address or network hardware address, in that order of
  48.          preference.  (The BOOTP configuration file is described below.)  If
  49.          the Internet address was not specified by the requester and a
  50.          configuration record is not found, the server looks in the
  51.          /_e_t_c/_e_t_h_e_r_s file (see _e_t_h_e_r_s(4)) for an entry with the client's
  52.          network hardware address.  If an entry is found, the server checks
  53.          the hostname of that entry against the /_e_t_c/_h_o_s_t_s file (see _h_o_s_t_s(4))
  54.          in order to complete the network hardware address to Internet address
  55.          mapping.  If the BOOTP request does not include the client's Internet
  56.          address and the server is unable to translate the client's network
  57.          hardware address into an Internet address by either of the two
  58.          methods described, the server does not respond to the request.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. bbbboooooooottttpppp((((1111MMMM))))                                                            bbbboooooooottttpppp((((1111MMMM))))
  71.  
  72.  
  73.  
  74.      4.  The server performs name translation on the boot filename requested
  75.          and then checks for the presence of that file.  If the file is
  76.          present, then the server sends a response packet to the requester
  77.          that includes the following information:
  78.  
  79.          requester's Internet address
  80.          server's Internet address
  81.          Internet address of a gateway to the server
  82.          server's name
  83.          vendor-specific information (not defined by the protocol)
  84.  
  85.          If the boot file is missing, the server returns a response packet
  86.          with a null filename but only if the request was specifically
  87.          directed to that server.  The pathname translation is:  if the boot
  88.          filename is rooted, use it as is; else concatenate the root of the
  89.          boot subtree, as specified by the BOOTP configuration file, followed
  90.          by the filename supplied by the requester, followed by a period and
  91.          the requester's hostname.  If that file is not present, remove the
  92.          trailing period and hostname and try again.  If no boot filename is
  93.          requested, use the default boot file for that host from the
  94.          configuration table.  If there is no default specified for that host,
  95.          use the general default boot filename, first with ._h_o_s_t_n_a_m_e as a
  96.          suffix and then without.  Note that _t_f_t_p_d(1M) must be configured to
  97.          allow access to the boot file (see the _t_f_t_p_d(1M) reference page for
  98.          details).
  99.  
  100.    OOOOppppttttiiiioooonnnnssss
  101.      The ----dddd option causes _b_o_o_t_p to generate debugging messages.  All messages
  102.      from _b_o_o_t_p go through _s_y_s_l_o_g_d(1M), the system logging daemon.
  103.  
  104.      The ----ffff option enables the forwarding function of _b_o_o_t_p.  Refer to the
  105.      following section, ``Booting through Gateways,'' for an explanation.
  106.  
  107.    BBBBoooooooottttpppp CCCCoooonnnnffffiiiigggguuuurrrraaaattttiiiioooonnnn FFFFiiiilllleeee
  108.      In order to perform its name translation and address resolution
  109.      functions, _b_o_o_t_p requires configuration information that it gets from an
  110.      ASCII file called /_e_t_c/_b_o_o_t_p_t_a_b and from other system configuration files
  111.      like /_e_t_c/_e_t_h_e_r_s and /_e_t_c/_h_o_s_t_s.  Here is a sample _b_o_o_t_p_t_a_b file:
  112.  
  113.           # /etc/bootptab:  database for bootp server
  114.           #
  115.           # Blank lines and lines beginning with '#' are ignored.
  116.           #
  117.           # Root of boot subtree:
  118.           /usr/local/boot
  119.  
  120.           # Default bootfile:
  121.           unix
  122.  
  123.           %%
  124.  
  125.           # The remainder of this file contains one line per client
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. bbbboooooooottttpppp((((1111MMMM))))                                                            bbbboooooooottttpppp((((1111MMMM))))
  137.  
  138.  
  139.  
  140.           # interface with the information shown by the table headings
  141.           # below. The 'host' name is also tried as a suffix for the
  142.           # 'bootfile' when searching the boot directory.
  143.           # (e.g., bootfile.host)
  144.           #
  145.           # host    htype     haddr          iaddr          bootfile
  146.  
  147.           IRIS   1  01:02:03:8a:8b:8c   192.0.2.1      unix
  148.  
  149.      The fields of each line can be separated by variable amounts of white
  150.      space (blanks and tabs).  The first section, up to the line beginning %%%%%%%%,
  151.      defines the place where _b_o_o_t_p looks for boot files when the client
  152.      requests a boot file using a nonrooted pathname.  The second section of
  153.      the file is used for mapping client network hardware addresses into
  154.      Internet addresses.  Up to 512 hosts can be specified.  The _h_t_y_p_e field
  155.      should always have a value of 1 for now; this indicates that the hardware
  156.      address is a 48-bit Ethernet address.  The _h_a_d_d_r field is the Ethernet
  157.      address of the system in question expressed as six hexadecimal bytes
  158.      separated by colons.  The _i_a_d_d_r field is the 32-bit Internet address of
  159.      the system expressed in standard Internet dot notation (see _i_n_e_t_d(3N)).
  160.      Each line in the second section can also specify a default boot file for
  161.      each specific host.  In the example above, if the host called _u_n_i_x_b_o_x
  162.      makes a BOOTP request with no boot file specified, the server selects the
  163.      first of the following that it finds:
  164.  
  165.           /usr/local/boot/unix.unixbox
  166.           /usr/local/boot/unix
  167.  
  168.      The length of the boot filename must not exceed 127 characters.
  169.  
  170.      It is not necessary to create a record for every potential client in the
  171.      _b_o_o_t_p_t_a_b file.  The only constraint is that _b_o_o_t_p responds only to a
  172.      request from a client if it can deduce the client's Internet address.
  173.      There are three ways that this can happen:
  174.  
  175.      +o  The client already knows its Internet address and includes it in the
  176.         BOOTP request packet.
  177.      +o  There is an entry in /_e_t_c/_b_o_o_t_p_t_a_b that matches the client's network
  178.         hardware address.
  179.      +o  There are entries in the /_e_t_c/_e_t_h_e_r_s and /_e_t_c/_h_o_s_t_s files (or their
  180.         NIS equivalents) that allow the client's network hardware address to
  181.         be translated into an Internet address.
  182.  
  183.    BBBBoooooooottttiiiinnnngggg tttthhhhrrrroooouuuugggghhhh GGGGaaaatttteeeewwwwaaaayyyyssss
  184.      Since the BOOTP request is distributed using a UDP broadcast, it is only
  185.      received by other hosts on the same network as the client.  In some cases
  186.      the client may wish to boot from a host on another network.  This can be
  187.      accomplished by using the forwarding function of BOOTP servers on the
  188.      local network.  To use BOOTP forwarding, there must be a _b_o_o_t_p process
  189.      running in a gateway machine on the local network.  A gateway machine is
  190.      simply a machine with more than one network interface board.  The gateway
  191.      _b_o_o_t_p must be invoked with the ----ffff option to activate forwarding.  Such a
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. bbbboooooooottttpppp((((1111MMMM))))                                                            bbbboooooooottttpppp((((1111MMMM))))
  203.  
  204.  
  205.  
  206.      forwarding _b_o_o_t_p resends any BOOTP request it receives that asks for a
  207.      specific host by name, if that host is on a different network from the
  208.      client that sent the request.  The BOOTP server forwards the packet using
  209.      the full routing capabilities of the underlying IP layer in the kernel,
  210.      so the forwarded packet is automatically routed to the requested BOOTP
  211.      server if the kernel routing tables contain a route to the destination
  212.      network.
  213.  
  214. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  215.      The BOOTP server logs messages using the system logging daemon,
  216.      _s_y_s_l_o_g_d(1M).  The actual disposition of these messages depends on the
  217.      configuration of _s_y_s_l_o_g_d on the machine in question.  Consult _s_y_s_l_o_g_d(1M)
  218.      for further information.
  219.  
  220.      _b_o_o_t_p can produce the following messages:
  221.  
  222.      'get interface config' ioctl failed (_m_e_s_s_a_g_e)
  223.      'get interface netmask' ioctl failed (_m_e_s_s_a_g_e)
  224.      getsockname failed (_m_e_s_s_a_g_e)
  225.      forwarding failed (_m_e_s_s_a_g_e)
  226.      send failed (_m_e_s_s_a_g_e)
  227.      set arp ioctl failed
  228.           Each of the above messages means that a system call has returned an
  229.           error unexpectedly.  Such errors usually cause _b_o_o_t_p to terminate.
  230.           The _m_e_s_s_a_g_e is the appropriate standard system error message.
  231.  
  232.      less than two interfaces, -f flag ignored
  233.           Warning only (debug mode).  Means that the ----ffff option was specified
  234.           on a machine that is not a gateway.  Forwarding only works on
  235.           gateways.
  236.  
  237.      request for unknown host _x_x_x _f_r_o_m _y_y_y
  238.           Information only.  A BOOTP request was received asking for host _x_x_x,
  239.           but that host is not in the host database.  The request was
  240.           generated by _y_y_y, which can be given as a hostname or an Internet
  241.           address.
  242.  
  243.      request from _x_x_x _f_o_r '_f_f_f'
  244.           Information only.  _b_o_o_t_p logs each request for a boot file.  The
  245.           host _x_x_x has requested boot file _f_f_f.
  246.  
  247.      can't access boot file fff (_m_e_s_s_a_g_e)
  248.           A request has been received for the boot file _f_f_f, but that file is
  249.           not accessible.
  250.  
  251.      reply boot filename fff too long
  252.           The filename length _f_f_f exceeds the BOOTP protocol limit of 127
  253.           characters.
  254.  
  255.      reply boot file fff
  256.           Information only.  _b_o_o_t_p has selected the file _f_f_f as the boot file
  257.           to satisfy a request.
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. bbbboooooooottttpppp((((1111MMMM))))                                                            bbbboooooooottttpppp((((1111MMMM))))
  269.  
  270.  
  271.  
  272.      can't reply to dd.dd.dd.dd (unknown net)
  273.           This _b_o_o_t_p has generated a response to a client and is trying to
  274.           send the response directly to the client (that is, the request did
  275.           not get forwarded by another _b_o_o_t_p), but none of the network
  276.           interfaces on this machine is on the same directly connected network
  277.           as the client machine.
  278.  
  279.      reply: can't find net for dd.dd.dd.dd
  280.           The server is acting as BOOTP forwarder and has received a datagram
  281.           with a client address that is not on a directly connected network.
  282.  
  283.      can't open /etc/bootptab
  284.           The _b_o_o_t_p configuration file is missing or has wrong permissions.
  285.  
  286.      (re)reading /etc/bootptab
  287.           Information only.  _b_o_o_t_p checks the modification date of the
  288.           configuration file on the receipt of each request and rereads it if
  289.           it has been modified since the last time it was read.
  290.  
  291.      bad hex address: _x_x_x at line _n_n_n of bootptab
  292.      bad internet address: _s_s_s at line _n_n_n of bootptab
  293.      string truncated: _s_s_s, on line _n_n_n of bootptab
  294.           These messages mean that the format of the BOOTP configuration file
  295.           is not valid.
  296.  
  297.      'hosts' table length exceeded
  298.           There are too many lines in the second section of the BOOTP
  299.           configuration file.  The current limit is 512.
  300.  
  301.      can't allocate memory
  302.           A call to _m_a_l_l_o_c(3C) failed.
  303.  
  304.      gethostbyname(_s_s_s) _f_a_i_l_e_d (_m_e_s_s_a_g_e)
  305.           A call to _g_e_t_h_o_s_t_b_y_n_a_m_e(3N) with the argument _s_s_s has failed.
  306.  
  307.      gethostbyaddr(_d_d._d_d._d_d._d_d) _f_a_i_l_e_d (_m_e_s_s_a_g_e)
  308.           A call to _g_e_t_h_o_s_t_b_y_a_d_d_r(3N) with the argument _d_d._d_d._d_d._d_d has
  309.           failed.
  310.  
  311. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  312.      dhcp_bootp(1M), inetd(1M), rarpd(1M), syslogd(1M), tftpd(1M), ethers(4),
  313.      hosts(4), services(4).
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.